from PyQt5.QtWidgets import QMainWindow, QDesktopWidget, QApplication
import sys

# 接下来是面向对象的程序创建
class HalloWorldWin(QMainWindow) :
    def __init__(self):
        # 先执行父类的初始化
        super(HalloWorldWin, self).__init__()
        # 创建标题
        self.setWindowTitle('HalloWorld Program')
        # 设置窗口尺寸
        self.resize(400, 300)
        # 新建一个状态栏, self.status是申明一个变量
        self.staBar = self.statusBar()
        # 显示文本设置以及显示时间设置
        self.staBar.showMessage('让我来康康什么是状态栏', 5000)
        # 让创建的图标居中显示
        self.centerSet()

    def centerSet(self):
        # 获取屏幕坐标系
        scr = QDesktopWidget().screenGeometry()
        # 获取窗口坐标系
        widget = self.geometry()
        # 宽度之差取中间就是屏幕中心的坐标了
        x = (scr.width() - widget.width()) / 2
        # y轴坐标
        y = (scr.height() - widget.height()) / 2
        # 然后就是移动到想要的坐标地址了
        self.move(x, y)

# 只有这个脚本文件调用时才会执行以下程序, 其他程序调用则不会执行
if __name__ == '__main__' :
    # QApplication是PyQt的整个后台管理的命脉。任何一个使用PyQt开发的图形
    # 用户界面应用程序，都存在一个QApplication对象
    # 这里可以获取命令行的输入
    app = QApplication(sys.argv)
    # 创建对象
    target = HalloWorldWin()
    # 界面运行
    target.show()
    # sys.exit是捕获异常就退出, 直接给个空参数就是直接退出
    # app.exec_()的含义是，最后一个窗口关闭后，程序才停止
    sys.exit(app.exec_())
